Cet atelier Numérliab a pour objectif d’introduire la plateforme Google Earth Engine (EE) et certaines de ses fonctionnalités.
Earth Engine est un logiciel en ligne de la compagnie Google qui met à la disposition de ses utilisateurs une grande variété de couches géographiques (images satellitaires, données climatiques, topographiques, etc.), ainsi que des outils pour les analyser. L’avantage de EE est qu’une grande majorité des calculs sont faits directement par les serveurs de Google sur le cloud, donc beaucoup plus rapidement que sur un ordinateur personnel. Le but de cet atelier n’est pas d’apprendre un nouveau language de programmation, mais plutôt de présenter certains outils et codes reproductibles et adaptables à vos besoins.
Voici quelques informations pour vous retrouver dans l’interface
Panneau de gauche
- Bibliothèque où sont enregistrés tous vos codes
- Bibliothèque de GEE où sont les exemples de codes et la description des outils GEE
- Bibliothèque de vos propres couches (shapefiles, raster et autres bases de données).
Panneau du centre
- Éditeur de code où vous faites vos calculs
Panneau de droite
- Onglet d’inspection de la couche pour inspecter les métadonnées de votre carte (informations sur les couches et les pixels)
- Console des sorties où l’information des différentes cartes ou les graphiques s’affichent
- Gestionnaire de tâche pour les documents importés ou exportés
Barre de recherche
- Pour rechercher un lieu ou des couches de données
Carte
- Carte interactive où sont affichées vos couches calculées par-dessus une carte typique de Google
Naviguer sur la carte jusqu’au Parc National de la Mauricie. Il est aussi possible de faire une recherche à l’aide de la barre de recherche, p. ex. “Shawinigan”.
Alternative, utiliser la ligne de code suivante
N’oubliez pas d’enregistrer votre code à l’aide du bouton enregistrer
Pour importer une couche, vous devrez la charger à partir de la banque de données de Earth Engine. Pour cela, il suffit de rechercher au sein du catalogue EE à l’aide de la barre de recherche et de l’importer. À noter que lorsqu’une couche est importée elle ne s’affichera pas directement. Comme aucunes limites n’ont été spécifiées pour cette couche, elle contient l’information reliée à une énorme superficie et le mieux est de la filtrer pour avoir un affichage autour d’un lieu d’intérêt. Voici un exemple avec des données d’élévation.
Pour ajouter la couche d’élévation SRTM, rechercher et sélectionner la couche NASA SRTM Digital Elevation 30m
Vous pouvez consulter l’information disponible pour cette couche dans les différents onglets du panneau qui s’est affiché. Ensuite, cliquez sur importer pour que la couche s’ajoute à votre environnement EE.
var ombre = ee.Terrain.hillshade(srtm);
Map.addLayer(ombre, {min: 150, max:255}, 'Ombre');
var pente = ee.Terrain.slope(srtm);
Map.addLayer(pente, {min: 0, max: 30}, 'Pente')Le catalogue de données de Google Earth Engine permet d’accéder à de nombreuses sources d’images satellitaires. Pour travailler sur d’un lieu d’intérêt, il faudra filtrer les données disponibles pour ce lieu pour une période donnée. Commencez par importer les images du satellite Sentinel 2 (aussi possible pour Landsat).
var pnm_s2=sent2
.filterBounds(pnm)
.filterDate("2020-07-01", "2020-08-30")
.filterMetadata('CLOUDY_PIXEL_PERCENTAGE','less_than',10);
print(pnm_s2.size(),"n. images");
print(pnm_s2, "propriétés pnm_s2")
var pnm_i = sent2
.filterBounds(pnm)
.filterDate("2020-07-01", "2020-09-30")
.sort("CLOUD_COVERAGE_ASSESSMENT")
.first();
print(pnm_i,"meilleur image");
//extra : 2nd best?
var pnm_i2 = sent2
.filterDate("2020-07-01", "2020-09-30")
.filterBounds(pnm)
.sort("CLOUD_COVERAGE_ASSESSMENT")
.select(1); //le premier index est 0, donc la 2e image est 1
print(pnm_i2, "2e meilleur image")
Dans les étapes précédentes, le lieu d’intérêt était le Parc National de la Maurice. Un repère a été placé à un endroit aléatoire dans le Parc. Il est cependant possible de travailler dans Earth Engine avec des superficies prédéterminées par exemple dans le cas d’un fichier shapefile. Pour ce faire, il vous faudra importer les fichiers shapefiles de votre ordinateur vers Google Earth Engine.
Une fois le fichier shapefile importé, il est possible d’afficher la photo satellite seulement pour cette superficie avec l’outil «.clip » et le code suivant:
Un autre exercice qui requiert peu de code avec Google Earth Engine est de créer une nouvelle couche de donnée qui contient une bande calculée comme l’indice NDVI (Normalized difference vegetation index).
Ce type d’index est souvent utilisé pour mettre en évidence certains éléments des images. Dans le cas du NDVI, il s’agit d’un ratio entre les réflectances des bandes rouge et proche infra-rouge qui permet de mettre en évidence la présence de végétation au sein d’une image.
\[NDVI = \frac{NIR-RED}{NIR+RED} \] Différentes méthodes permettent de créer une telle couche :
var ndvi = function (x) {
var result=x.normalizedDifference(["B8", "B4"]).rename("NDVI");
return x.addBands(result);
};
var ndvi1 = ndvi(pnm_i);
Map.addLayer(ndvi1, {bands:['NDVI'],min:0,max:1,palette:['red','yellow','green']},"NDVI Méthode1");Le prochain exercice vise à introduire à la classification d’image à l’aide de Google Earth Engine. Le code ci-dessous permettra de faire une classification supervisée des différents types de paysages à partir d’image satellite. À l’aide d’un jeu de données préliminaires où les différents types de paysages sont connus, l’outil cart permet d’extrapoler la classification à une plus grande échelle.
Vous êtes maintenant en mesure d’utiliser la couche précédente pour créer un jeu de données d’entrainement pour la classification à plus grande échelle. Le jeu de donnée d’entrainement va calculer quelles sont les valeurs des pixels reliés à chaque polygone pour les différentes bandes spectrales, ici les bandes 2 à 7.
Vous pouvez maintenant faire le test de votre classification sur l’image satellite complète.
Le résultat précédent n’est pas parfait. Il serait possible, par exemple, de refaire la classification avec des couches d’information supplémentaires, comme l’élévation. L’outil " addBands " permet facilement de regrouper des couches d’informations.
Il est possible d’exporter les couches créées dans Google Earth Engine pour continuer de les modifier dans des logiciels SIG. Par exemple, on pourrait vouloir exporter une partie de la classification précédente dans un fichier raster. Comme l’image satellite est relativement volumineuse, vous exporterez seulement une partie de la couche.